package gutils

import (
	"github.com/sigurn/crc16"
)

// Crc16MaximStr 计算字符串的CRC16校验和，使用MAXIM算法。
//
// 参数:
//   - str: 需要计算校验和的输入字符串
//
// 返回值:
//   - uint16: 返回计算得到的16位CRC校验和
//
// 示例:
//
//	checksum := Crc16MaximStr("Hello, World!") // 返回CRC16校验和
func Crc16MaximStr(str string) uint16 {
	table := crc16.MakeTable(crc16.CRC16_MAXIM)

	// using the standard library hash.Hash interface
	h := crc16.New(table)
	h.Write([]byte(str))
	return h.Sum16()
}
